package com.xm.adapter;

/**
 * 对象适配器
 */
public class AImplment {
    public static void main(String[] args) {
        TypeC typeC = new TypeC();
        USB usbAdapter = new TypeCToUSBAdapter(typeC);
        usbAdapter.chargeWithUSB();  //输出：使用 Type-C 接口充电... 通过适配器转换为 USB 充电..
    }
}
//目标接口：客户端期望的充电接口（如 USB）
interface USB {
    void chargeWithUSB();
}

//被适配的类：现有的 Type-C 充电接口
class TypeC {
    public void chargeWithTypeC() {
        System.out.println("使用 Type-C 接口充电...");
    }
}

//适配器类：将 Type-C 转换为 USB 接口
class TypeCToUSBAdapter implements USB {
    private final TypeC typeC;  //组合被适配对象

    public TypeCToUSBAdapter(TypeC typeC) {
        this.typeC = typeC;
    }

    @Override
    public void chargeWithUSB() {
        typeC.chargeWithTypeC();  // 调用被适配类的方法
        System.out.println("通过适配器转换为 USB 充电...");
    }
}
